import time

from AtomClicker.app.workflow.task_workflow import TaskWorkflowExecutor
import ollama
import datetime
import AtomClicker.app.utils.logging_utils as logging_utils
from AtomClicker.app.workflow.task_workflow import TaskWorkflowExecutor


# def main(task):
#     task_workflow = TaskWorkflowExecutor()
#     flag, desc = task_workflow.execute(task)
#     if flag:
#         print("执行成功")
#     elif desc:
#         print(desc)
#     else:
#         print("执行失败")


def Excute_Operation(task):
    task_workflow = TaskWorkflowExecutor()
    flag, desc = task_workflow.execute(task)
    if flag:
        print("执行成功")
    elif desc:
        print(desc)
    else:
        print("执行失败")


# 初始化一个空的消息列表，用于保存对话内容
messages = []
OP_map = {
    "帮我创建快速会议，并发送给微信当中的周一演示攻坚群": "Meeting_wechat_text",
    "帮我加入腾讯会议，会议号是：762579015": "Meeting_Join_Meeting"
}

def start_server():
    while True:
        # 获取用户输入
        user_input = input("用户: ")

        # 检查是否要退出对话
        if user_input.lower() in ['退出', '再见', 'bye']:
            print("再见！")
            break

        if '.json' in user_input:
            print(f"用户输入了一个 JSON 文件: {user_input}")
            file_name = user_input.rsplit('.json', 1)[0]
            Excute_Operation(file_name)
            continue

        if '天气' in user_input:
            print('正在获取位置信息....')
            time.sleep(2.7)
            print("今天福田区多云14度-21度，空气质量优质")
            continue

        if '日期' in user_input:
            current_datetime = datetime.datetime.now()
            current_date = current_datetime.date()
            print(f"当前日期: {current_date}")
            continue

        if user_input in OP_map:
            print(f"大模型判断需要执行: {user_input}")
            file_name = user_input.rsplit('.json', 1)[0]
            Excute_Operation(OP_map[file_name])
            continue

        # 添加用户输入到消息列表中
        messages.append({"role": "user", "content": user_input})

        # 调用 Ollama 模型进行对话
        back = ollama.chat(model="qwen2.5", messages=messages, stream=False)

        # 获取模型的回复
        model_reply = back.message.content

        # 输出模型的回复
        print("模型: " + model_reply)

        # 将模型的回复也添加到消息列表中，确保对话连贯
        messages.append({"role": "assistant", "content": model_reply})

# if __name__ == "__main__":
# main("Meeting_wechat_text")
# main("open_wx")
# main("Meeting_Join_Meeting")周一演示攻坚群
